Originally computers utilized low level technical notation and encoding. Gradually, more visually oriented and intuitive computer interfaces were developed. Such developments included the video monitor, use of icons and object-orientation incorporated in Visual Basic™, Visual C++ and Java™. The development of graphical user interfaces for developers began to reshape the programming process.
The concept of an application framework means that programmers start with working application code and basic user interface elements in place. Application development frameworks attempt to enable more simplified processing of information through the various levels of computer systems, so that application experts are not required to have programming skills in order to take a significant role in the development process.
Objects are software components made up of data elements and functions to manipulate these data elements. These can model virtually any real-world property of people, computers and systems, as well as abstract numbers and geometrical designs. Objects are often defined by creating “classes” that define the structure and behavior of object.
Objects can be designed to hide, or encapsulate, all, or a portion of, their internal data structure and internal functions. Object oriented programming (OOP) also allows a programmer to create an object that is a part of another object.
A common approach for software development is the use of modeling languages such as the Unified Modeling Language (UML) for the design phase, and the use of source code of a high-level computer language for writing the previously designed programs. This approach results in a slow implementation process and suffers from maintenance problems due to the gap between the descriptive nature of the modeling language used for the design and the language required for the programming, where source code is used. In addition, currently known modeling languages, such as UML, are themselves very complicated languages, the learning and mastering of which takes a very long time.
Another alternative is the use of distinct tools for the definition of process flows and for data manipulation. According to this approach, different problems will be solved differently, by different tools. This approach results in high system complexity and maintenance problems resulting from the separation of business logic across different systems. Typically, this hybrid approach is not used to completely implement new systems, but rather provides a hybrid solution for integrating between working systems. Integration of the working systems is performed by automatic sequencing, i.e. adding process logic invoking the working systems in a predefined order, and by providing data transformations, i.e. data manipulation elements that translate messages and data structures from a certain format to another.
Systems for visually defining executable process logic have been around for years. An important class of such systems is Workflow Management systems. Workflow Management systems began as systems for the management of manual work, and later evolved to handle automatic processes as well. Systems for visually defining executable data manipulation logic have also been around and have been used for application integration, e.g. mapping tools.
Recently, these two categories of Workflow and data manipulation have been converged into a new category called Business Process Management (BPM). BPM systems typically embody the aforementioned hybrid approach. The segregation that exists in these systems between the process logic and the data manipulation logic actually makes them inadequate for creating applications from scratch. BPM systems are not meant for complete definition of new applications, but are rather used for adding the “business process” layer on top of the “conventional” (hand-coded) applications.
Developments in the art include U.S. Pat. No. 5,850,548 by Williams, “System and Methods for Visual Programming Based on a High-Level Hierarchical Data Flow Model,” issued Dec. 15, 1998. The assignee is Borland, who launched one of the first PC development environments, Turbo Pascal®, which made possible the commercial development of PC applications.
According to U.S. Pat. No. 5,850,548, a user constructs a program by selecting one or more components from a library, which displays components in a tabbed palette. Using a visual editor of the system, the user may drill-down into the internals of a component for modifying its logic. The user connects various components via the component “ports”, which allow access to properties of the component. Components of the system may be nested within other components to an arbitrary level. Thus, high-level component manipulations are performed “visually,” as illustrated in FIGS. 1-9B. However, detailed manipulations are achieved through standard programming techniques, as illustrated in FIGS. 10A-25B. The user must be a skilled programmer, as well as an application expert.
U.S. Pat. No. 6,282,699 by Zhang et al, “Code Node for a Graphical Programming System Which Invokes Execution of Textual Code,” is also a hybrid visual/programming tool, wherein the graphical program is operable to invoke execution of textual code. U.S. Pat. No. 6,138,273 by Sturges, “Programmable Interpretive Virtual Machine,” discloses an interpreter for a linear command stream. No visual application development is provided.
US20020138819A1 patent application by Hills, “Computer Programming Language to Describe and Encapsulate a Computer as a Set of Classes and Objects,” that describes an object-oriented programming language method, encapsulates the structure and behavior of all software-visible objects making up a digital computer, as well as any abstract object normally described by an object-oriented programming language. The language disclosed is also a visual/programming hybrid.
U.S. Pat. No. 6,233,537 by Gryphon et al., “Workflow model language,” issued May 15, 2001, discloses a modeling system for the visual presentation of business applications. It describes a systematic methodology for describing the business logic of systems by a visual modeling language capable of representing elements of the application in progressively finer levels of detail. The language disclosed is meant to serve multiple people specifying and designing together the functionality of a software system, and the design components can be visualized using drawing tools like VISIO or by drawing diagrams manually. U.S. Pat. No. 6,233,537, however, does not eliminate the need to implement the designed application, although it claims to describe business processes and business information in enough detail to construct a software implementation of a business model, if desired.
Therefore, there is a need for a system and a method that overcomes the limitations of the prior art, and provides for replacement of the need to write source code.